﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using JXT.PrimaryKey.Batman.Log;
using JXT.PrimaryKey.Batman.Domain.Repositories;
using JXT.PrimaryKey.Batman.Domain.Specifications;

namespace JXT.PrimaryKey.Batman.Domain.Services
{
    public interface IService
    {
        ILogger Logger { get; }

        TRepository LoadRepository<TRepository>();

        TService LoadService<TService>() where TService : IService;

        RepositoryContext RepositoryContext { get; }

        ISpecificationFactory SpecificationFactory { get; }
    }
}
